package cn.me.alphamq.common.model.broker.meta;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * MMap 的文件模型应该实现的接口
 *
 * @author f
 */
public interface MappedFile {

    /**
     * 获取文件剩余的大小
     *
     * @return
     */
    int restSize();

    /**
     * 获取文件名称
     *
     * @return
     */
    String getFileName();

    /**
     * 设置文件名称
     *
     * @param fileName 新的文件名称
     */
    void setFileName(String fileName);

    /**
     * 获取偏移量的最大值
     *
     * @return
     */
    Integer getOffsetLimit();

    /**
     * 设置偏移量的最大值
     *
     * @param offsetLimit 偏移量的最大值
     */
    void setOffsetLimit(Integer offsetLimit);

    /**
     * 获取偏移量
     *
     * @return
     */
    AtomicInteger getOffset();

    /**
     * 设置偏移量
     *
     * @param offset 偏移量
     */
    void setOffset(AtomicInteger offset);

}
